package xijia.plus.docs.manage.all.util;


import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 导入导出 文件工具
 *
 * @author wangsong
 * @version 1.0.0
 * @email 1720696548@qq.com
 * @date 2022/12/22 0022 21:16
 */
@Slf4j
public class MdImgUtil {


    /**
     * 解析获取文档中的所有图片 url
     *
     * @author wangsong
     * @email 1720696548@qq.com
     * @date 2022/12/22 0022 19:36
     * @version 1.0.0
     */
    public static List<String> analysisGetMdImgUrls(String markdownStr) {
        // 通过正则匹配获取图片
        String regex = "!\\[(.*?)\\]\\((.*?)\\)";
        Pattern patten = Pattern.compile(regex);
        Matcher matcher = patten.matcher(markdownStr);
        List<String> imgUrls = new ArrayList();
        //此处find（）每次被调用后，会偏移到下一个匹配
        while (matcher.find()) {
            //获取当前匹配的值
            String imgUrlArr = matcher.group();
            String imgUrl = imgUrlArr.replaceAll(regex, "$2");
            imgUrls.add(imgUrl);
        }
        return imgUrls;
    }

    /**
     * 清理图片 url 后多余的数据
     * 如：
     * xxx.png?xxx=xx&xxx=xx
     * xxx.png? “屏幕截图”
     * 等...
     *
     * @param imgUrl
     * @return java.lang.String
     * @author wangsong
     */
    public static String imgUrlClean(String imgUrl) {
        // 判断图片链接后是否还存在内容，存在单独提取出来
       return imgUrl.substring(0, !imgUrl.contains("?") ? imgUrl.length() : imgUrl.indexOf("?"));
    }

}
